perm filename DART.REG[UP,DOC]3 blob sn#074084 filedate 1973-11-24 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00007 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002		DART - Dump and Restore Techinque
C00003 00003		Dart Commands
C00005 00004		Command Semantics.
C00009 00005		Tape Format
C00012 00006		Privileged commands
C00013 00007		File Backup Policy
C00016 ENDMK
C⊗;
	DART - Dump and Restore Techinque

					R. E. Gorin
					November, 1972


Summary:
	DART is a program that saves disk files on magnetic tape  and
restores files from tape to disk.  Dart will be used to make periodic
backups of the file disk.  Dart is also available to users  who  wish
to maintain their own backup tapes.


Caution:
	The following description may be incomplete and is subject to
change.

	Dart Commands

	Dart signifies its readiness to accept a command by typing an
asterisk (*).

	In the description below, braces, { and }, are used to denote
optional  items.  Vertical bar, | , denotes an exclusive - or choice.
Pointed brackets, < and > are used to enclose  syntactic  items  that
are defined below.

	Dart accepts the following commands:


DUMP	  {<dest>←}{<source>}
RESTORE	  {<dest>←}{<source>}
REWIND	  {<dev>{:}}
EOT	  {<dev>{:}}
ADVANCE	  {FILE|RECORD} {<dev>{:}} {<count>}
BACKSPACE {FILE|RECORD} {<dev>{:}} {<count>}
LOCATE	  {<source>}
LIST	  {<dest>}←{<source>}
EXIT

<dest> ::= 	{<dev>:}<file>{.<ext>}{[<prj>,<prg>]}
<source> ::=	{{<dev>:}{[<prj>,<prg>]}@}
			{<dev>:}<file>{.ext}{[<prj>,<prg>]}{,<source>}

<dev> is "any" legal device name.
<file> is any file name or *
<ext> is any file extension or *
<prj> is any project code or *
<prg> is any programmer name or *
<count> is any string of decimal digits.

Caution: The only devices that are  appropriate  here  are  disk  and
magtape.  (UDP  service  may  be  added,  later.)  See  the semantics
section, below, for further explanations.

	Commands  are  typed  on  one  line  and  terminated   by   a
carriage-return and line-feed.



	Command Semantics.

REWIND

	This command will cause the device named to  rewind  to  load
point.   MTA0  is  the  default  if  no device argument is used.  The
device named should be a magnetic tape unit.

EOT
	This  command  will  cause  ADVANCE FILE to be repeated until
either two adjacent file marks are seen  (logical  end  of  tape)  or
until physical end of tape is reached.


ADVANCE and ADVANCE FILE
	This command will cause the tape to  advance  past  the  next
file  mark on the tape.  If a repeat factor is given, then the comand
will be repeated that number of times.

	Caution:   Dart  often  records  more than one disk file on a
magtape file!  Therefore, advance file  will  (sometimes)  skip  more
than one disk file.

ADVANCE RECORD
	Same as ADVANCE FILE  except  that  instead  of  file  marks,
record  marks  are  used.   This command leaves you at the front of a
record.

BACKSPACE and BACKSPACE FILE
	This  command  will  cause the tape to move backwards until a
file mark is seen.   DART then does one  ADVANCE  FILE  operation  to
position  the  tape  at the front of a file.  If a repeat argument is
given then that argument is used to repeat the  backspace  operation.
Only one ADVANCE is used, after all backspace operations.

	Caution BACKSPACE or BACKSPACE 1 will position  the  tape  at
the front of the current magtape file.  BACKSPACE 2 will position one
previous, etc.

BACKSPACE RECORD
	Same  as BACKSPACCE FILE except that record marks are used to
stop the operation instead of file marks.  After all  backspaces  are
completed, Dart does an ADVANCE RECORD command.


LOCATE
	For each file named in the argument list, this command prints
the  tape  numbers  where  this file was dumped and the corresponding
creation dates of the file.

LIST
	This command will list on the destination device the names of
the files that are read from the source device.  (Editor's note: the
files are not actually read, only their names, but I did not want
to tinker with Ralph's poetic description. )

DUMP
	This command will write on the destination device those files
that are specified  by  the  source  term.  If  there  is  no  source
argument, *.*[current area] is used.

RESTORE
	This command will restore to the destination files  that  are
described by the source term.
	Null destination means *.*[current area].
	Null source = *.*[current area]

	The command RESTORE [*,REG]←[*,REG] will restore all of REG's
files to the areas that they were dumped from.

	Tape Format

	Tapes are usually recorded at 800 BPI,  odd  parity.   Record
length  does not exceed 1280 words. There are three types of records,
header-trailer records, File start records, and Continuation records.


Header-Trailer records:

Word 0:		version,,length
				version is the positive version
				number of the DART that created
				this tape. Length is the length
				of the data following.

Word 1:		'DART  '	sixbit DART

Word 2:		'*HEAD*' or '*TAIL*'
				data in sixbit

Word 3:		time,date	in file system format

Word 4:		ppn		the name of the person running
				Dart.

Word 5:		class,,tapno	Tape number of this tape
				Dump class of this dump


Tape numbers are kept only for system  class  dumps.  User  class  is
class  0.   Classes  1  and  2  are  system  classes  (Temporary  and
Permanent).


File-Start Records
Word 0:		-1,,length	-1 denotes file-start records.
				length is the number of data words
				that follow.

Word 1:		devnam		name of the source device

Word 2-21			file retrieval of this file as it
				appeared on the disk.

word 22-length			data from the file.

word length+1			exclusive or of words 1-length.

word length+2			if this is 0, skip to next record.
				if this is <0, threat as word 0 above.


File continuation Record
word 0		0,,length	length is the number of data words

words 1-length			data from the file

word length+1			xor of words 1-length above

word length+2			same as in File-start record.


If  a  file start is seen, then at least all of the retrieval data is
present in the current magtape record.

	Privileged commands

The  area  [DMP,SYS]  is privileged to make backup dumps of the disk.
The following commands are legal if you happen to be [DMP,SYS].


FDUMP				Full dump of the disk
PDUMP				Permanent Dump of the disk
TDUMP				Temporary-class dump of the disk

PICKUP				Continue with a privileged dump
				after a system crash.


The  FDUMP,PDUMP  and TDUMP commands all take an optional argument of
the form <dev>:← which specifies the tape to dump to.



	File Backup Policy
	DART will implement the following policy regarding backing up
the disk on tape.

	There are three classes of system dump, Full,  Permanent  and
Temporary.   Full  dumps  will  be made at widely separated intervals
(probably  more  than  6  months).   Permanent  dumps  will  be  made
approximatly  once a week. Temporary dumps will be made several times
each week.

	The retention of the Permanent (and Full) Tapes will exceed 1
year.  The retentention of the Temporary tapes will exceed 4 weeks.

	The different classes of dump will treat files differently as
follows:

1.  RPG and TMP and empty (i.e., 0 word) files will not be dumped

2.  Files with protection of 400 or greater will not be dumped.

3.  Any file not covered by 1 or 2 will be dumped if it has
    the dump date invalid bit set.

3.  A full dump will dump all files except those eliminated by
    1 and 2 above.

4.  A P dump will dump all files (not covered by 1 and 2) that
    have been p-dumped fewer than 2 times and are more than n
    (n=4 at present) days old.

5.  A T dump will dump all files (not covered by 1 and 2) that
    have never been p-dumped and have never been t-dumped.

	The intention of this policy is to  provide  backup  for  the
disk  to  prevent  total  loss of files in a major crash. A secondary
effect is to provide individuals with short term backup against their
own  mistakes.   It  is  not  the intention of this policy to provide
eternal backup of every file that ever appeared on the disk.